运行环境配置
1. sensor配置¶
用户可以自由搭配不同的摄像头型号,因此用户需指定每个摄像头的“型号+连接位置+data lane条数”。“型号”决定了驱动,“连接位置”通过chmap
参数传给sensor驱动,data lane条数通过lane_num
参数传给sensor驱动。以“imx415+imx307”为例,加载sensor驱动的方式如下:
# Sensor pad0,对应chmap=1 insmod /config/modules/4.9.84/imx415_MIPI.ko chmap=1 lane_num=4 # Sensor pad1,对应chmap=2 insmod /config/modules/4.9.84/imx307_MIPI.ko chmap=2 lane_num=4
实际硬件连接决定了sensor pad,对应的chmap值为pad指定二进制位对应的十进制值,即chmap = 0x1 << pad
。在打包前根据实际的sensor搭配,修改project/configs/defconfigs/dispcam_m6_spinand.glibc-9.1.0-squashfs.016a.512x512.bga2.demo_defconfig
文件的以下参数后重新make dispcam_m6_spinand.glibc-9.1.0-squashfs.016a.512x512.bga2.demo_defconfig
再编译image,烧写到板子上后可以在/customer/demo.sh
启动脚本中看到有两条insmod
加载驱动的命令。
# # Sensor # CONFIG_IQ0="imx307/imx307_iqfile.bin" CONFIG_IQ1="imx307/imx307_iqfile.bin" CONFIG_IQ2="imx307/imx307_iqfile.bin" CONFIG_IQ3="imx307/imx307_iqfile.bin" # 打包到image中的sensor驱动列表 CONFIG_SENSOR_LIST="imx323.ko imx415_MIPI.ko imx307_MIPI.ko imx307_dual_MIPI.ko nvp6158c.ko dh9931.ko" # sensor 0型号,选择sensor list中的一个 CONFIG_SENSOR0="imx415_MIPI.ko" # sensor 0 option CONFIG_SENSOR0_OPT="chmap=1 lane_num=4" # sensor 1型号,选择sensor list中的一个 CONFIG_SENSOR1="imx307_MIPI.ko" # sensor 1 option CONFIG_SENSOR1_OPT="chmap=2 lane_num=4" CONFIG_SENSOR2="" CONFIG_SENSOR2_OPT=""
或是直接使用make menuconfig
以编辑,如下:
可以根据实际情况增加或省略上面的CONFIG_SENSOR0
、CONFIG_SENSOR1
或CONFIG_SENSOR2
。
2. Panel配置¶
SSD26x支持ttl、mipi等接口的屏,这里只介绍ttl时序配置部分;部分屏还需要通过spi总线配置参数,这部分将在app中完成。要能正常点亮lcd屏需要板子上存在/config/config.ini
这个屏参文件,且指定的屏及时序参数正确。
- 修改
board/m6/$BOARD_NAME/config/config.ini
文件,在最开头的m_pnlList
中指定当前使用的屏,如demo板使用的7寸屏:
m_pnlList = {\ SAT070AT50H18BH,\ }
- 根据屏的datasheet在适当的位置增加一套屏参,可以复制demo板使用的7寸屏的参数进行修改,如下:
[SAT070AT50H18BH] m_wPanelDispPath = 1; m_pPanelName = "SAT070AT50H18BH_1024x600"; m_bPanelDither = 0; m_ePanelIntfType = 0; #0:ttl 1:lvds 11:mipi 12:bt656 m_bPanelInvDCLK = 0; m_bPanelInvDE = 0; m_bPanelInvHSync = 0; m_bPanelInvVSync = 0; m_wPanelHSyncWidth = 48; m_wPanelHSyncBackPorch = 46; m_wPanelVSyncWidth = 4; m_wPanelVBackPorch = 23; m_wPanelHStart = 98; m_wPanelVStart = 27; m_wPanelWidth = 1024; m_wPanelHeight = 600; m_wPanelHTotal = 1344; m_wPanelVTotal = 635; m_wPanelDCLK = 51; m_wSpreadSpectrumFreq = 0; m_wSpreadSpectrumRatio = 0; m_eOutputFormatBitMode = 2; #0:10bit 1:6bit 2:8bit 3:565bit m_ucPanelSwapChnR = 3; m_ucPanelSwapChnG = 2; m_ucPanelSwapChnB = 1; m_ucPanelSwapRgbML = 0;
- 以上参数介绍请参考配置屏参
3. FB配置¶
使用fb之前需先配置好fb的分辨率、数据格式等参数。系统默认将从/config/fbdev.ini
文件中读取这些参数,用户可以通过编辑project/board/m6/$BOARD_NAME/config
文件来指定需要的配置,如黑色SSD268G开发板fbdev.ini
文件的存放位置为board/m6/SSC016A-S01A/config/fbdev.ini
[FB_DEVICE] FB_HWLAYER_ID = 3 FB_HWWIN_ID = 0 FB_HWLAYER_DST = 3 FB_HWWIN_FORMAT = 5 FB_HWLAYER_OUTPUTCOLOR = 1 FB_WIDTH = 800 FB_HEIGHT = 480 FB_TIMMING_WIDTH = 1920 FB_TIMMING_HEIGHT = 1080 FB_MMAP_NAME = E_MMAP_ID_FB FB_BUFFER_LEN = 8192 #unit:Kbyte,4096=4M, fbdev.ko alloc size = FB_BUFFER_LEN*1024 [FB_CURSOR] FB_HWLAYER_ID = 0 FB_HWWIN_ID = 0 FB_HWLAYER_DST = 3 FB_HWWIN_FORMAT = 6 FB_HWLAYER_OUTPUTCOLOR = 1 FB_MMAP_NAME = E_MMAP_ID_HW_CURSOR [LAYER_ZORDER] LAYER_ZORDER0 = 0 LAYER_ZORDER1 = 1 LAYER_ZORDER2 = 2 LAYER_ZORDER3 = 3 LAYER_ZORDER4 = 4
一般情况下用户需要根据实际使用的显示口修改FB_HWLAYER_ID、FB_HWWIN_ID、FB_WIDTH、FB_HEIGHT、FB_TIMMING_WIDTH、FB_TIMMING_HEIGHT
等参数。并根据配置的参数初始化好相应的disp口(详见应用开发说明)即可正常使用fb。
4. 默认驱动配置¶
用户要增删默认加载的驱动时可以编辑project/kbuild/customize/4.9.227/m6/dispcam/spinand/kernel_mod_list
文件,按照一行一个的原则增删所需要的驱动,带参数的话直接写到驱动的末尾。如:g_webcam.ko streaming_maxpacket=3072 streaming_maxburst=13 uac_function_enable=0
5. Rootfs配置¶
rootfs的生成规则位于project/image/configs/m6/rootfs.mk
文件中,用户根据实际需要修改即可。
6. 分区配置¶
分区配置文件存放于project/image/configs/i6e
文件夹下,默认使用的配置如下:
flash | config |
---|---|
spi nand | spinand.squashfs.partition.config |
spi nor | nor.squashfs.partition.config |
需要变更分区配置的话主要关注开头的IMAGE_LIST
及后面每个分区的PATSIZE
等信息,详见系统分区。